package com.c2b.algorithm.leetcode.base;

/**
 * <a href='https://leetcode.cn/problems/maximum-number-of-balloons/'>“气球” 的最大数量(Maximum Number of Balloons)</a>
 * <p>给你一个字符串 text，你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"（气球）。</p>
 * <p>字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。</p>
 *
 * <p>
 * <b>示例：</b>
 * <pre>
 * 示例 1：
 *      输入：text = "nlaebolko"
 *      输出：1
 *
 * 示例 2：
 *      输入：text = "loonbalxballpoon"
 *      输出：2
 *
 * 示例 3：
 *      输入：text = "leetcode"
 *      输出：0
 * </pre>
 * </p>
 *
 * <p>
 * <b>提示：</b>
 * <ul>
 *     <li>1 <= text.length <= 10^4</li>
 *     <li>text 全部由小写英文字母组成</li>
 * </ul>
 * </p>
 *
 * @author c2b
 * @since 2024/1/12 11:49
 */
public class LC1189MaximumNumberOfBalloons_S {

    static class Solution {
        public int maxNumberOfBalloons(String text) {
            // 统计每个字符出现的数量
            int[] cnt = new int[5];
            for (char currCh : text.toCharArray()) {
                switch (currCh) {
                    case 'a':
                        ++cnt[0];
                        break;
                    case 'b':
                        ++cnt[1];
                        break;
                    case 'l':
                        ++cnt[2];
                        break;
                    case 'o':
                        ++cnt[3];
                        break;
                    case 'n':
                        ++cnt[4];
                        break;
                    default:

                }
            }
            cnt[2] /= 2;
            cnt[3] /= 2;
            // b a ll oo n
            int res = cnt[0];
            for (int i = 1; i < 5; i++) {
                res = Math.min(res, cnt[i]);
            }
            return res;
        }
    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.maxNumberOfBalloons("nlaebolko"));
        System.out.println(solution.maxNumberOfBalloons("loonbalxballpoon"));
        System.out.println(solution.maxNumberOfBalloons("leetcode"));
    }
}
